package org.xxpay.core.service;

import com.alibaba.fastjson.JSONObject;
import org.xxpay.core.common.vo.*;
import org.xxpay.core.entity.SysConfig;

import java.util.List;
import java.util.Map;

/**
 * @author: dingzhiwei
 * @date: 18/08/22
 * @description: 系统参数配置接口
 */
public interface ISysConfigService {


    List<SysConfig> select(String type);

    JSONObject getSysConfigObj(String type);

    int updateAll(List<SysConfig> sysConfigList);

    int update(Map<String, String> updateMap);

    JSONObject getSysConfig();
    /**
     * 根据code 获取配置的值
     * @param code
     * @return
     */
    String getValByCode(String code);

    /** 获取移植到DB中的环境变量 **/
    DBApplicationConfig getDBApplicationConfig();

    /** 获取移植到DB中的环境变量 **/
    DBUploadFileConfig getDBUploadFileConfig();

    /** 代付相关配置项 **/
    DBAgentpayConfig getDBAgentpayConfig();

    /** 获取网站信息 **/
    JSONObject getSiteConfigJSON();

    /** 获取sms配置信息 **/
    DBSmsConfig getSmsConfig();

    /** 获取运营平台提醒消息配置信息 **/
    DBSysTipsConfig getSysTipsConfig();

    /** 初始化环境变量 根据类型初始化 **/
    void initDBApplicationConfig(String type);

    /**
     * 清理数据
     * @param list
     * @param createTimeStr
     * @return
     */
    int cleanData(List<String> list, String createTimeStr);

    JSONObject selectByCodes(String... codes);

    JSONObject selectByCodes(List<String> codes);
}
